package com.songlanyun.common.utils;


import com.songlanyun.common.utils.sensi.SensitiveFilter;
import org.springframework.stereotype.Component;

import javax.annotation.Resource;
import java.util.List;

/**
 * 敏感词工具类
 */
@Component("sensiUtil")
public class SensiUtil {


    @Resource
    private SensitiveFilter filter;

    /**
     * 过滤
     *
     * @param text
     * @return
     */
    public String filter(String text) {

        String filted = filter.filter(text, '*');

        // 如果未过滤，则返回输入的String引用
        if (!text.equals(filted)) {
            // 句子中有敏感词
            System.out.println(filted);
        }

        return filted;
    }


    /**
     * 添加
     *
     * @param filterText
     */
    public void put(String filterText) {
        //存入数据库

        // 向过滤器增加一个词
        filter.put(filterText);

    }

    /**
     * 刷新单个敏感词
     *
     * @param textArr //去数据库中查询所有的附加敏感词
     */
    public void flush(String textArr) {
        //初始化组件
        filter = SensitiveFilter.DEFAULT;

        // 向过滤器增加词
        filter.put(textArr);


    }

    /**
     * 刷新附加敏感词库
     *
     * @param texts //去数据库中查询所有的附加敏感词
     */
    public void flushList(List<String> texts) {
        //初始化组件
        filter = SensitiveFilter.DEFAULT;

        // 向过滤器增加词
        texts.forEach(v -> {
            filter.put(v);
        });


    }
}
